// xx_tool.h
#ifndef XX_TOOL_H
#define XX_TOOL_H

#include <Arduino.h>
#include <vector>
using namespace std;

// tool
void xx_tool_setup();
bool isNull(const char *str);
void log(const char *format, ...);

// wifi
void xx_mqtt_setup(const char *n, vector<const char *> topics); // 初始化wifi 连接服务器
void xx_mqtt_loop();                                     // 主循环

void xx_mqtt_setOnConnected(void (*func)(const char *));                     // 连接成功回调
void xx_mqtt_setOnMessageReceived(void (*func)(const char *, const char *)); // 消息回调
void xx_mqtt_subscribe(const char *topic);                                   // 订阅
void xx_mqtt_sendMessage(const char *topic, const char *message);            // 发送

// distance
void xx_distance_setup();
float xx_distance();

// servo
void xx_servo_setup();
void xx_servoSetAngle(int angle);

// 360
void xx_mg90_360_setup();


// led control
enum LightMode
{
    OFF,
    WHITE,
    WARM_WHITE,
    COLD_BLUE,
    PINK,
    PURPLE,
    RAINBOW_FLOW
};
void xx_led_setup();
void xx_let_setLightMode(LightMode mode);

#endif // XX_TOOL_H